/*
 * SurfaceFactory.h
 *
 *  Created on: Nov 15, 2011
 *      Author: gonzalo
 */

#ifndef SURFACEFACTORY_H_
#define SURFACEFACTORY_H_

#include "SDL/SDL_video.h"
#include "../SDLEngine.h"
#include <string>

enum SurfaceType{
	SURFACEBUTTON_PRESSED,
	SURFACEBUTTON_RELEASED,
	SURFACEBUTTONSCROLLBARDOWN_PRESSED,
	SURFACEBUTTONSCROLLBARDOWN_RELEASED,
	SURFACEBUTTONSCROLLBARUP_PRESSED,
	SURFACEBUTTONSCROLLBARUP_RELEASED,
	SURFACEBULLET,
	SURFACETANK,
	SURFACETEXTBOX,
	SURFACETEXTBOXSCROLLBAR,
	SURFACETEXTBOXSCROLLBARELEMENT_RELEASED,
	SURFACETEXTBOXSCROLLBARELEMENT_PRESSED,
	SURFACEMESSAGELABEL_ON,
	SURFACEMESSAGELABEL_OFF};

class SurfaceFactory {
public:
	SurfaceFactory(SDLEngine* engine);
	virtual ~SurfaceFactory();

	static SDL_Surface* getSurface(SurfaceType type);
	static SDL_Surface* getSurface(std::string path);
private:
	SDLEngine* engine;
};

#endif /* SURFACEFACTORY_H_ */
